Natural language understanding (NLU) techniques have been developed to allow computers to derive meaning from natural language input. These techniques may be useful in a variety of applications. One example is call routing, where an NLU technique may be used to tag a caller's utterance with a likely intent, which may then be mapped to an appropriate call destination. Another example is machine translation, where an NLU technique may be used to process an input sentence in a first language and generate a corresponding semantic representation, which may in turn be used to generate an output sentence in a second language.